#include <iostream>
#include <vector>
#include <thread>

using namespace std;

void f(vector<double> &v); // 处理v的函数

struct F // 处理v的函数对象
{
    vector<double> &v;
    F(vector<double> &vv) : v{vv} {}
    void operator()(); // 调用运算符
};

int main(int argc, char const *argv[])
{
    vector<double> some_vec{1, 2, 3, 4, 5, 6, 7, 8, 9};
    vector<double> vec2{10, 11, 12, 13, 14};

    thread t1{f, some_vec}; // f(some_vec)在一个独立线程中执行
    thread t2{F{vec2}};     // F(ve2)()在一个独立线程中执行

    t1.join();
    t2.join();
    return 0;
}
